1. Field of the Invention
The present invention relates to the field of computer graphics and, in particular, to a file format representing a scene.
2. Description of the Related Art
Many computer graphic images are created by mathematically modeling the interaction of light with a three-dimensional (3D) scene from a given viewpoint. This process, called rendering, generates a two-dimensional (2D) image of the scene from the given viewpoint, and is analogous to taking a photograph of a real-world scene. Animated sequences can be created by rendering a sequence of images of a scene as the scene is gradually changed over time. A great deal of effort has been devoted to making realistic-looking and artistically compelling rendered images and animations.
Computer graphics images, animations, and other productions involving computer graphics, such as interactive entertainment software, are created from a number of different components. Generally, components include any data and instructions used to create products and applications that include computer graphics. Components can include three-dimensional models of geometry, texture maps, other arrays of data, lighting, shading programs used to determine the visual appearance of models, and animation data and deformer functions used to specify changes and motion over time. One or more components are typically stored as a digital “asset.” These assets can then be used to compose a rendered scene.
Digital production pipelines typically involve modeling, shading, articulation, animation, simulation, layout, lighting, and rendering. Modeling is the creation of the three-dimensional geometry of characters, sets, props, and other objects. Shading is the specification of optical attributes of the surface and interior of objects. Articulation is the specification of joints and other moveable elements of objects. Animation specifies the motion of objects over time in one or more scenes, often with reference to the objects' articulations. Simulation specifies the motion, appearance, and/or behavior of objects. Layout specifies the arrangement of objects and cameras in one or more scenes. Lighting defines the location and other attributes of light in one or more scenes. Rendering produces images or animation from the components.
During one or more of these pipeline phases, a user loads the scene and can manipulate the scene in some fashion. Using conventional techniques, all of the data that the user needs to manipulate the scene, including geometry, lighting, articulation, shading, etc. is typically loaded into memory for manipulation. Loading all of this data into memory can be a very computationally expensive task, especially when the scene is very complicated or intricate, which decreases performance.
As the foregoing illustrates, there is a need in the art for an improved technique that addresses the limitations of current approaches set forth above.